SharedPreferences হল Android এ সহজ এবং দ্রুত ডেটা সংরক্ষণের একটি উপায়, যা key-value পেয়ারের মাধ্যমে ছোট ও সাধারণ ডেটা সংরক্ষণ করে। এটি সাধারণত ব্যবহারকারীর প্রিফারেন্স, সেটিংস, বা অন্য ছোট ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়। SharedPreferences ডেটা অ্যাপ্লিকেশন বন্ধ হয়ে গেলেও সংরক্ষিত থাকে, তবে এটি শুধুমাত্র প্রাইমিটিভ ডেটা টাইপ (যেমন String, int, boolean, float, long) সংরক্ষণ করতে পারে।
SharedPreferences ব্যবহার করে Simple Data Store
নিচে SharedPreferences ব্যবহার করে একটি simple data store তৈরি করার উদাহরণ এবং ধাপগুলো আলোচনা করা হলো।
SharedPreferences ব্যবহার করার ধাপসমূহ
ধাপ ১: SharedPreferences ইন্সট্যান্স তৈরি করা
প্রথমে SharedPreferences এর ইন্সট্যান্স তৈরি করতে হবে। এটি Activity বা Context থেকে পাওয়া যায়।
SharedPreferences sharedPreferences = getSharedPreferences("MyPreferences", Context.MODE_PRIVATE);
- "MyPreferences": SharedPreferences এর নাম। আপনি যেকোনো নাম দিতে পারেন।
- Context.MODE_PRIVATE: এটি নিশ্চিত করে যে শুধুমাত্র এই অ্যাপ্লিকেশনই এই ডেটা অ্যাক্সেস করতে পারবে।
ধাপ ২: ডেটা সংরক্ষণ করা
SharedPreferences ব্যবহার করে ডেটা সংরক্ষণ করতে হলে SharedPreferences.Editor ব্যবহার করতে হবে। Editor এর মাধ্যমে আপনি key-value পেয়ার সংরক্ষণ করতে পারেন।
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("username", "JohnDoe");
editor.putInt("userAge", 25);
editor.putBoolean("isLoggedIn", true);
editor.apply(); // apply() পরিবর্তনগুলি সেভ করে
- putString(), putInt(), putBoolean(): ডেটা সংরক্ষণের জন্য ব্যবহৃত মেথড। key-value পেয়ারের মাধ্যমে ডেটা সংরক্ষণ করা হয়।
- apply(): পরিবর্তনগুলি সেভ করে। এটি অ্যাসিনক্রোনাস ভাবে কাজ করে। আপনি commit() মেথডও ব্যবহার করতে পারেন, যা সিঙ্ক্রোনাস ভাবে কাজ করে।
ধাপ ৩: ডেটা পড়া (Retrieve করা)
Stored ডেটা রিট্রিভ করতে getString(), getInt(), getBoolean() ইত্যাদি মেথড ব্যবহার করা হয়।
String username = sharedPreferences.getString("username", "defaultUser");
int userAge = sharedPreferences.getInt("userAge", 0);
boolean isLoggedIn = sharedPreferences.getBoolean("isLoggedIn", false);
- প্রথম প্যারামিটার হল key, যা সংরক্ষণকৃত ডেটা রিট্রিভ করার জন্য ব্যবহার করা হয়।
- দ্বিতীয় প্যারামিটার হল ডিফল্ট ভ্যালু, যা তখন রিটার্ন করা হবে যদি কোনো ডেটা পাওয়া না যায়।
ধাপ ৪: ডেটা মুছে ফেলা
SharedPreferences এ সংরক্ষিত ডেটা মুছে ফেলতে remove() বা clear() মেথড ব্যবহার করা হয়।
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.remove("username"); // নির্দিষ্ট key এর ডেটা মুছে ফেলে
editor.clear(); // সমস্ত ডেটা মুছে ফেলে
editor.apply();
পূর্ণ উদাহরণ: SharedPreferences ব্যবহার করে Simple Data Store
নিচে একটি সম্পূর্ণ উদাহরণ দেওয়া হলো, যেখানে ব্যবহারকারীর নাম এবং লগইন স্টেটাস সংরক্ষণ করা হচ্ছে এবং পুনরুদ্ধার করা হচ্ছে।
public class MainActivity extends AppCompatActivity {
private SharedPreferences sharedPreferences;
private SharedPreferences.Editor editor;
private EditText usernameInput;
private Button saveButton, loadButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// SharedPreferences ইন্সট্যান্স তৈরি করা
sharedPreferences = getSharedPreferences("MyPreferences", Context.MODE_PRIVATE);
editor = sharedPreferences.edit();
usernameInput = findViewById(R.id.usernameInput);
saveButton = findViewById(R.id.saveButton);
loadButton = findViewById(R.id.loadButton);
// ডেটা সংরক্ষণ করা
saveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String username = usernameInput.getText().toString();
editor.putString("username", username);
editor.putBoolean("isLoggedIn", true);
editor.apply();
Toast.makeText(MainActivity.this, "Data Saved", Toast.LENGTH_SHORT).show();
}
});
// ডেটা রিট্রিভ করা
loadButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String username = sharedPreferences.getString("username", "defaultUser");
boolean isLoggedIn = sharedPreferences.getBoolean("isLoggedIn", false);
Toast.makeText(MainActivity.this, "Username: " + username + ", Logged In: " + isLoggedIn, Toast.LENGTH_LONG).show();
}
});
}
}
ব্যাখ্যা:
- saveButton: ব্যবহারকারীর নাম এবং লগইন স্টেটাস SharedPreferences এ সংরক্ষণ করে।
- loadButton: SharedPreferences থেকে ডেটা রিট্রিভ করে এবং Toast এর মাধ্যমে প্রদর্শন করে।
SharedPreferences এর সুবিধা এবং সীমাবদ্ধতা
| সুবিধা | সীমাবদ্ধতা |
|---|---|
| সহজ এবং দ্রুত ডেটা সংরক্ষণ | শুধুমাত্র প্রাইমিটিভ ডেটা টাইপ সংরক্ষণ করে |
| অ্যাপ বন্ধ হলেও ডেটা থাকে | বড় ডেটা সেটের জন্য উপযুক্ত নয় |
| নির্দিষ্ট ডেটা কুইকলি অ্যাক্সেস | নিরাপত্তা সীমিত, সংবেদনশীল ডেটা সংরক্ষণ করার জন্য উপযুক্ত নয় |
উপসংহার
SharedPreferences হল Android এ ছোট ডেটা সংরক্ষণের একটি সহজ উপায়। এটি ব্যবহার করে অ্যাপ্লিকেশনে ব্যবহারকারীর প্রিফারেন্স, সেটিংস বা অন্য সাধারণ ইনফরমেশন সংরক্ষণ করা যায়। তবে, বড় ডেটা বা সংবেদনশীল ডেটা সংরক্ষণের জন্য SQLite, Room Database, বা EncryptedSharedPreferences ব্যবহার করা বেশি উপযুক্ত। SharedPreferences ব্যবহার করার সময় সঠিকভাবে ডেটা রিড এবং রাইট করার পদ্ধতি অনুসরণ করলে একটি কার্যকরী এবং ব্যবহারবান্ধব অ্যাপ্লিকেশন তৈরি করা সম্ভব।
Read more